The present invention relates to computer software utility programs, and more specifically, to a software program designed to simplify a choice of operating systems to load upon reboot of a computer.
In a computing environment that takes advantage of more than one operating system, the choice of which operating system will load into a computer upon startup has traditionally been determined by a user during the computer startup sequence. Typically, a user waits for a load utility to present a menu during a startup routine. A load utility menu will present a list of available operating systems. A user can select a desired operating system to load during an imminent computing session. Most load utility menus are designed such that the ability to choose an operating system is only available for some window of time. If no intervening action is taken during that window of time, the computer reverts to a default operating system and proceeds with the boot sequence.
During a computing session if it is required that a different operating system be utilized, the computer must be rebooted and a selection must be made from the menu during the computer startup sequence. Rebooting of a computer can be a lengthy process, often lasting several minutes. A user needs to be attentive during a typical reboot procedure and make a timely choice from a menu designating operating systems. A window of time allotted a user during which the user has the opportunity to designate a choice of operating systems may only last seconds. A user that is not attentive may let this window of time pass, wherein a computer will continue to boot using a default operating system. If the default operating system is not the system of choice for the user, the user will need to wait until the default operating system finishes loading and then shut it down, starting the sequence over again. It would be useful to have a means of designating from a current computing session an operating system to load upon the next computer start sequence.
Every general purpose computer must have an operating system to run application programs. An operating system performs basic tasks such as recognizing input from a keyboard, sending output to a display screen, keeping track of files and directories on a disk and controlling peripheral devices such as disk drives and printers. FIG. 1. In addition, all operating systems make sure that different programs running at the same time do not interfere with each other and provide for security against unauthorized users.
Application programs run on an operating system, therefore, an application program must be written to run on a particular operating system. A user""s choice of operating system is often determined by the applications that will be run. Popular operating systems for computers include DOS, Windows(trademark), Windows 95(trademark), Windows NT(trademark), OS/2(trademark), and Linux. Advanced users may wish to have Windows NT(trademark), OS/2(trademark) and Linux on the same machine. Technicians and support type personnel who wish to emulate different operating environments of various users can also find multiple operating systems useful. In addition, developers may need several versions of the same operating system available. With enough disk space, it is possible to have multiple operating systems on one machine.
During typical start up of a computer, the first program to execute is the power on self-test program or POST. Following POST, a basic input output system or BIOS runs. Amongst other things, BIOS is responsible for directing a computer to a boot sector of a disk on which an operating system is installed. Having identified a correct disk and sector, Read Only Memory (ROM) that holds the BIOS initializes code to read the first record from that disk into storage. The first record is referred to as a master boot record or MBR. Computer hard drives can be partitioned such that each partition can potentially hold a different operating system. A MBR will look to the partition table and choose a primary partition that is marked active or startable. The MBR program can read the first 512 byte sector from the active primary partition. This first sector commonly comprises an operating system loader program.
When utilizing multiple operating systems, it is sometimes preferable to have the MBR boot load a loader utility. A loader utility can specify information about logical partitions and locate operating systems stored on them. One example of a loader utility is Boot Manager. Boot Manager is part of the OS/2(trademark) operating system. Boot Manager is not a full operating system; it is only a utility to direct a computer towards a full operating system. To run an operating system, Boot Manager is directed to the first sector of a designated partition or volume and runs a program contained there.
A BIOS initialization code locates a first 512 byte record of a first disk drive and reads code on it comprising a MBR. The MBR then reads a first sector of an active partition and executes code contained on the active partition. If the active partition is a load utility, the boot manager directs the computer to a first sector of a partition or logical volume containing code comprising a chosen operating system. An operating system may be chosen by operator selection or as a default of the boot manager.
A computer with multiple operating systems can utilize a hard drive with multiple partitions. Each partition may belong to a different file system. Generally, an operating system will ignore those partitions whose ID type represents an unknown file system type. A load utility is typically installed in its own non-DOS, 1 megabyte, primary partition on the first hard drive. In this way, ROM or BIOS initialization code first accesses the master boot record. The master boot record sees that a load utility partition is active and loads that program into memory. The load utility presents a menu on a display giving a user an opportunity to make a selection from available operating systems. A computer boots to a default system if there is no response from a user within a window of time comprising a time out period.
In a similar fashion, Windows NT(trademark) uses a utility called the NT loader. With Windows NT(trademark), the NT boot sector loads a hidden program. The hidden program displays a boot selection menu based on information in a plain text data set, such as a boot.ini file. Typical to a load utility, NT loader gives a user a specified time out period to select an option from the menu. If nothing is entered, Windows NT(trademark) is loaded by default.
Typically, a boot sector manager will reference a boot.ini file. Amongst other information the boot.ini file can contain a list of different operating systems available to the computer upon boot up. In addition a boot.ini can store information such as how many seconds a menu for user selection of the operating system is made available to a user before a default operating system loads. Operating system product vendors sometimes support rebooting into a different interface of their own proprietary operating systems from a current computing session. For instance, Microsoft Windows 95(trademark) includes the capability of rebooting into a DOS interface. It would be useful for a utility to be available from a standard operating system interface that allows for selection of an operating system to load upon reboot of a computer. Such a utility would provide a customizable, user friendly, operating system selection interface. In order to be most useful such an interface should be simple enough so as not to require explanation on how to implement a change in operating system software.
Accordingly, the present invention provides a method and apparatus for specifying an operating system of choice during a current computing session such that upon reboot, a computer will boot up into a specified operating system. Generally, a computerized user interface 400 is provided to-assist a user in the selection of a software operating system to be used on a computer. A selected operating system is set to load by default upon the next start up of the computer. Computer executable program code, i.e. software, running on a computer directs the computer to perform desired functions relating to selection and loading of an operating system on a computer. This invention also comprises a computer readable medium onto which program code for implementing in the computer desired function ability has been stored.
Computer software running on a computer causes a user interface 400 to present to a user a list of available operating systems for the computer. This computerized user interface 400 allows a user to select a desired operating system via a user activatible control. User activatible controls include, for example, clicking on an icon, cursoring to a selection until it is highlighted, selecting an alphanumeric designation corresponding with a desired operating system, typing out the selection or other known activatible control mechanisms for making a selection from a display. An operating system correlating with the selection made by the user is made to load upon restarting of the computer.
Providing an interface for other options related to the selection of an operating system also comprise this invention. Other options that can be made a part of the interface include causing an immediate restart or reboot of the computer with a change in default operating system, restarting the computer in response to an activatible control, specifying a time out period during which a user can override a default operating system, installation of the program code, uninstalling the program code, or reinstalling the program code.